package com.ruoyi.market.domain;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Excel.ColumnType;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;

/**
 * 卡券对象 coupon
 * 
 * @author ruoyi
 */
public class Coupon extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 卡券ID */
    @Excel(name = "卡券序号", cellType = ColumnType.NUMERIC, prompt = "卡券编号")
    private Long couponId;

    /** 店铺ID */
    private String shopId;

    /** 帐号状态（0正常 1停用） */
    @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /** 排序 */
    @Excel(name = "排序")
    private Long couponSort;

    /** 卡券金额 */
    @Excel(name = "卡券金额")
    private BigDecimal couponPrice;

    /** 卡券金额-使用门槛 */
    @Excel(name = "卡券金额-使用门槛")
    private BigDecimal couponPriceThreshold;

    /** 有效天数 */
    @Excel(name = "有效天数")
    private int couponValidityDay;

    /** 有效天数 */
    @Excel(name = "领取限制次数")
    private int couponReceiveLimit;

    /** 已领取次数 */
    @Excel(name = "已领取次数")
    private int couponReceiveCount;

    /** 有效天数 */
    @Excel(name = "使用人数")
    private int couponUseCount;

    /** 卡券标题 */
    @Excel(name = "卡券标题")
    private String couponTitle;

    /** 所属店铺信息   */
    private ConfigBase shopInfo;

    public Coupon()
    {

    }

    public Coupon(Long couponId)
    {
        this.couponId = couponId;
    }


    public String getShopId(){ return shopId; }

    public void setShopId(String shopId){ this.shopId = shopId; }

    public String getStatus()
    {
        return status;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public BigDecimal getCouponPrice(){ return couponPrice;}

    public void setCouponPrice(BigDecimal couponPrice){ this.couponPrice = couponPrice; }

    public BigDecimal getCouponPriceThreshold(){ return couponPriceThreshold;}

    public void setCouponPriceThreshold(BigDecimal couponPriceThreshold){ this.couponPriceThreshold = couponPriceThreshold; }

    public String getCouponTitle(){ return couponTitle;}

    public void setCouponTitle(String couponTitle){ this.couponTitle = couponTitle; }

    public Long getCouponSort(){ return couponSort;}

    public void setCouponSort(Long couponSort){ this.couponSort = couponSort; }

    public int getCouponValidityDay(){ return couponValidityDay;}

    public void setCouponValidityDay(int couponValidityDay){ this.couponValidityDay = couponValidityDay; }

    public int getCouponReceiveLimit(){ return couponReceiveLimit;}

    public void setCouponReceiveLimit(int couponReceiveLimit){ this.couponReceiveLimit = couponReceiveLimit; }

    public int getCouponReceiveCount(){ return couponReceiveCount;}

    public void setCouponReceiveCount(int couponReceiveCount){ this.couponReceiveCount = couponReceiveCount; }

    public int getCouponUseCount(){ return couponUseCount;}

    public void setCouponUseCount(int couponUseCount){ this.couponUseCount = couponUseCount; }

    public Long getCouponId()
    {
        return couponId;
    }

    public void setCouponId(Long couponId)
    {
        this.couponId = couponId;
    }

    public ConfigBase getShopInfo()
    {
        return shopInfo;
    }

    public void setShopInfo(ConfigBase shopInfo)
    {
        this.shopInfo = shopInfo;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("couponId", getCouponId())
            .append("shopId", getShopId())
            .append("couponTitle", getCouponTitle())
            .append("couponPrice", getCouponPrice())
            .append("couponPriceThreshold", getCouponPriceThreshold())
            .append("couponSort", getCouponSort())
            .append("couponValidityDay", getCouponValidityDay())
            .append("couponReceiveLimit", getCouponReceiveLimit())
            .append("couponReceiveCount", getCouponReceiveCount())
            .append("couponUseCount", getCouponUseCount())
            .append("shopInfo", getShopInfo())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("status", getStatus())
            .toString();
    }
}
